The present invention is generally related to object oriented computing, and more particularly to interaction between components in an object oriented computing environment.
As computer technology has matured, a variety of "standard" software applications have been developed to suit specific needs and accomplish specific types of tasks. For example, word processing applications have been developed for generating written documents, spreadsheets have been developed for making arithmetical computations, and databases have been developed for organizing, storing and retrieving information. While these and other standard software applications facilitate the respective tasks for which they were designed, other tasks present requirements which draw upon the capabilities of a plurality of such software applications.
In response to the need for software applications which would benefit from the capabilities of a plurality of standard applications, such as a database and word processor, it is known to develop customized software applications. However, development of such customized software applications is costly and time consuming, and may still fall short of desired objectives in the event further capabilities are needed which are not incorporated. One alternative to developing customized software applications is to export data from various software applications having appropriate features for given sub-tasks into one common application to create a presentation document. For example, arithmetical calculations could be made in a spreadsheet application, data could be sorted in a database application, and the results from both applications exported into a word processing application for inclusion in a word processing document for presentation. However, this solution has drawbacks. Exporting data typically requires tedious data transfer operations to be manually performed by the user. Further, when data is updated in one of the applications, such updates are not automatically provided to the presentation application. Consequently, substantial effort is required to assure that the presentation document is kept up to date.
Another solution to the above-mentioned problems is to embed objects via the Object Linking and Embedding ("OLE") standard. In order to comply with the OLE standard, objects and containers must implement predefined interfaces. Through such interfaces OLE allows data associated with a first application to appear in a document associated with a second application. However, such data is merely displayed in the document and cannot be employed for computation or similar tasks.